//时钟应用程序。本例展现了如何开发一个精确运行的时钟。
Class Clock extends Box
var body;
var hourLine;
var minLine;
var secLine;
//构造函数。进行界面准备，绘制60条刻度线，并创建三个指针。对于围绕中心点分布的元件，要使用pivot来设置变形中心点。
function Clock(){
	G.main.addChild(this);
	this.setSize("f","f");
	this.body=this.addChild({dimTo:this,pos:["c","c"],size:[500,500]});
	for(var i=0;i<60;i++){
		var w=i%15==0?12:(i%5==0?8:4);
		var h=i%15==0?32:(i%5==0?26:20);
		this.body.addChild({pos:[250,250,w,h],bg:"#000",pivot:[w/2,240],rotation:i*6});
	}
	this.body.addChild([
		[{dim:"hourLine",pos:[250,250,18,180],bg:"#000",pivot:[9,130],rotation:0}],
		[{dim:"minLine",pos:[250,250,14,230],bg:"#000",pivot:[7,180],rotation:30}],
		[{dim:"secLine",pos:[250,250,6,250],bg:"#f00",pivot:[3,200],rotation:60}],
		[{pos:[230,230,40,40],bg:["#fff","8#000",20]}]
	]);
	this.playTime();
}
//逐桢事件。在此算出各指针角度，设置对象旋转度，从而实现时间运行的效果。
function playTime(){
	callLater([this,this.playTime],1000);
	var d=new Date();
	var h=d.getHours();
	var m=d.getMinutes();
	var s=d.getSeconds();
	this.secLine.setRotation(360*s/60);
	this.minLine.setRotation(360*m/60);
	this.hourLine.setRotation(360*(h%12+m/60)/12);
}